package org.rslai.autotest.store;

import java.io.IOException;

import org.openqa.selenium.By;
import org.rslai.autotest.core.page.AbstractPageObject;

import cucumber.api.java.en.When;

/**
 * 通用的一些store
 * @author rslai
 *
 */
public class Common extends AbstractPageObject {

	@Override
	protected void switchToFrame() {
		
	}

	/**
	 * 休眠 "XX"
	 */
	@When("^sleep ([^\"]*)$")
	public void action_Sleep(String seconds) {
		this.sleep(Integer.parseInt(seconds));
	}

	/**
	 * 高亮显示 "XX"
	 */
	@When("^高亮显示 \"([^\"]*)\"$")
	public void action_Highlight(String xpathExpression) {
		this.script.highlight(By.xpath(xpathExpression));
	}

	/**
	 * 抄屏并保存为 "XX" <br>
	 * 注意：1、会自动保存在默认路径中 2、会自动添加时间戳
	 * @param partFileName 部分文件名（不包括文件后缀）
	 * @throws IOException
	 */
	@When("^抄屏并保存为\"([^\"]*)\"$")
	public void action_ScreenShot(String partFileName) throws IOException {
		this.screenShot.screenShot(partFileName);
	}

	/**
	 * 抄屏并保存到"XXX"目录中文件名为"XXX"
	 * @param pathName 指定的目录名
	 * @param fileName 指定的文件名（不包括扩展名）
	 * @throws IOException
	 */
	@When("^抄屏并保存到\"([^\"]*)\"目录中文件名为\"([^\"]*)\"$")
	public void action_ScreenShot(String pathName, String fileName) throws IOException {
		this.screenShot.screenShot(pathName, fileName);
	}

	/**
	 * 比对文件"XXX"和文件"XXX"是否完全一样
	 * @param fileName1 文件1全路径+文件名
	 * @param fileName2 文件2全路径+文件名
	 * @throws Exception
	 */
	@When("^比对文件\"([^\"]*)\"和文件\"([^\"]*)\"是否完全一样$")
	public void action_ddd(String fileName1, String fileName2) throws Exception {
		this.assertions.assertTrue("文件“" + fileName1 + "”和文件“" + fileName2 + "”不完全一样", this.image.contrastByMD5(fileName1, fileName2));
	}

}
